Hazelcast-এ Entry Processors এবং Aggregations দুটি গুরুত্বপূর্ণ বৈশিষ্ট্য যা ডিস্ট্রিবিউটেড ডেটা স্ট্রাকচার (যেমন IMap
, IQueue
, ইত্যাদি) এর উপর কার্যকরী অপারেশন প্রয়োগ করতে সহায়ক। এই দুটি ফিচার ডেটার সাথে একাধিক সঞ্চালন (operations) পরিচালনা করতে এবং ক্লাস্টারে ডেটার পারফরম্যান্স উন্নত করতে ব্যবহৃত হয়।
Entry Processor হল একটি Hazelcast ফিচার যা distributed map (যেমন IMap
) এর প্রতিটি এন্ট্রির উপর অপারেশন বা পরিবর্তন প্রয়োগ করতে ব্যবহৃত হয়। এটি ডিস্ট্রিবিউটেড ক্লাস্টারে থাকা প্রতিটি এন্ট্রির উপর অ্যাটমিক অপারেশন প্রয়োগ করতে সহায়ক, যার ফলে বিভিন্ন নোডে ডেটার অবস্থান পরিবর্তন করার জন্য কম নেটওয়ার্ক ট্রাফিক সৃষ্টি হয়।
ধরা যাক, আপনি একটি IMap
এর map.put()
বা map.update()
অপারেশন করতে চান, যেখানে ক্লাস্টারের নোডগুলোতে প্রক্রিয়া একযোগে চালানো হবে। উদাহরণস্বরূপ:
import com.hazelcast.map.EntryProcessor;
import com.hazelcast.core.MapEntry;
import java.util.Map;
public class CustomEntryProcessor implements EntryProcessor<String, Integer, Integer> {
@Override
public Integer process(Map.Entry<String, Integer> entry) {
// কাস্টম লজিক: বর্তমান মানের উপর একটি ইনক্রিমেন্ট প্রয়োগ
Integer currentValue = entry.getValue();
Integer newValue = currentValue + 1;
entry.setValue(newValue); // নতুন মান সেট করা
return newValue;
}
}
এই EntryProcessor
ক্লাসটি IMap
এর প্রতিটি এন্ট্রি (যেমন String
কীগুলির জন্য Integer
ভ্যালু) এর উপর ইনক্রিমেন্ট অপারেশন করবে।
IMap<String, Integer> map = hz.getMap("exampleMap");
map.executeOnEntries(new CustomEntryProcessor());
এখানে executeOnEntries
পদ্ধতি দ্বারা পুরো IMap
-এ EntryProcessor কার্যকর করা হচ্ছে।
Aggregation হল একটি ডেটা প্রসেসিং প্যাটার্ন যা ক্লাস্টারে থাকা ডেটার উপর বিভিন্ন পরিসংখ্যানিক বা গণনামূলক ফলাফল সংগ্রহ করতে ব্যবহৃত হয়। Hazecast-এর ডিস্ট্রিবিউটেড ডেটা স্ট্রাকচারগুলিতে (যেমন IMap
) বিভিন্ন ধরনের অ্যাগ্রিগেশন অপারেশন প্রয়োগ করা যায়, যেমন sum, average, count, ইত্যাদি।
Hazelcast-এ Aggregations সাধারণত EntryProcessor এর মাধ্যমে করা হয় এবং এটি ব্যবহারকারীকে ডিস্ট্রিবিউটেড ডেটা এর উপর অপারেশন করার সুবিধা দেয়।
ধরা যাক, আপনি একটি IMap
এর সমস্ত মানের যোগফল হিসাব করতে চান:
import com.hazelcast.map.EntryProcessor;
import java.util.Map;
public class SumEntryProcessor implements EntryProcessor<String, Integer, Integer> {
private int sum = 0;
@Override
public Integer process(Map.Entry<String, Integer> entry) {
sum += entry.getValue(); // মান যোগ করা
return sum;
}
public int getSum() {
return sum;
}
}
এই EntryProcessor
ক্লাসটি IMap
এর সমস্ত Integer
মান যোগ করবে।
IMap<String, Integer> map = hz.getMap("exampleMap");
SumEntryProcessor processor = new SumEntryProcessor();
map.executeOnEntries(processor);
System.out.println("Total sum: " + processor.getSum());
এখানে, executeOnEntries
পদ্ধতি দ্বারা IMap
এর প্রতিটি এন্ট্রির উপর EntryProcessor
প্রয়োগ করা হয় এবং পুরো মানের যোগফল হিসাব করা হয়।
বৈশিষ্ট্য | Entry Processor | Aggregation |
---|---|---|
কাজ | এক বা একাধিক এন্ট্রির উপর কাস্টম প্রক্রিয়া প্রয়োগ | ডেটা স্ট্রাকচারের উপর পরিসংখ্যানিক বা গণনামূলক অপারেশন |
লক্ষ্য | অ্যাটমিক অপারেশনগুলির মাধ্যমে ডেটা আপডেট করা | ডেটার উপর অ্যাগ্রিগেটেড ফলাফল গণনা করা |
ব্যবহার | একটি নির্দিষ্ট এন্ট্রি পরিবর্তন করা | একাধিক এন্ট্রি বা মানের উপর গণনা বা পরিসংখ্যান বের করা |
পারফরম্যান্স | নেটওয়ার্কে কম ট্রাফিক, দ্রুত আপডেট | ডিস্ট্রিবিউটেড ডেটা প্রসেসিং, পারফরম্যান্স টিউনিং |
Entry Processors এবং Aggregations দুটি শক্তিশালী বৈশিষ্ট্য যা Hazelcast-এ ডিস্ট্রিবিউটেড ডেটা স্ট্রাকচারের উপর কার্যকরী এবং পরিসংখ্যানিক অপারেশন প্রয়োগ করতে ব্যবহৃত হয়। Entry Processors ডেটার অ্যাটমিক পরিবর্তন এবং অপারেশন করতে সাহায্য করে, এবং Aggregations ডিস্ট্রিবিউটেড ডেটা থেকে পরিসংখ্যানিক ফলাফল সংগ্রহ করতে ব্যবহৃত হয়। এগুলি ব্যবহার করে আপনি ডিস্ট্রিবিউটেড সিস্টেমে কার্যকরী এবং উচ্চ পারফরম্যান্স অপারেশন করতে পারেন।
common.read_more